package com.feeyo.prophet.pojo.action.functioncall.flight.common;

import com.alibaba.fastjson.annotation.JSONField;
import com.feeyo.prophet.pojo.action.functioncall.ItemsBean;
import lombok.Data;

import java.util.List;

@Data
public class BasicTypeDefaultList {
    /**
     * 类型
     */
    private String type;

    /**
     * 描述
     */
    private String description;

    /**
     * 每一项的类型
     */
    private ItemsBean items;

    /**
     * 默认值
     */
    @JSONField(name = "default")
    private Object defaults;

    /**
     * 枚举
     */
    @JSONField(name = "enum")
    private List<?> enums;

    /**
     * 示例
     */
    private String example;

    /**
     * 最少项
     */
    private Integer minItems;


    public BasicTypeDefaultList() {
    }

    public BasicTypeDefaultList(String type, String description) {
        this.type = type;
        this.description = description;
    }

    public BasicTypeDefaultList(String type, String description, String example) {
        this.type = type;
        this.description = description;
        this.example = example;
    }

    public BasicTypeDefaultList(String type, String description, List<?> enums) {
        this.type = type;
        this.description = description;
        this.enums = enums;
    }

    public BasicTypeDefaultList(String type, String description, ItemsBean items) {
        this.type = type;
        this.description = description;
        this.items = items;
    }


    public BasicTypeDefaultList(String type, String description, ItemsBean items, Integer minItems) {
        this.type = type;
        this.description = description;
        this.items = items;
        this.minItems = minItems;
    }

    public BasicTypeDefaultList(String type, String description, ItemsBean items, List<?> defaults) {
        this.type = type;
        this.description = description;
        this.items = items;
        this.defaults = defaults;
    }

    public BasicTypeDefaultList(String type, String description, Object defaults, List<?> enums) {
        this.type = type;
        this.description = description;
        this.defaults = defaults;
        this.enums = enums;
    }


    public BasicTypeDefaultList(String type, String description, Object defaults, List<?> enums, String example) {
        this.type = type;
        this.description = description;
        this.defaults = defaults;
        this.enums = enums;
        this.example = example;
    }
}
